(function () {
    return {
        initControl: function (oControl) {
            var v = oControl.value;
            oControl.isContainer = true;
            v.marginLeft = false;
            v.marginTop = true;
            v.marginRight = false;
            v.marginBottom = true;
            v.paddingLeft = true;
            v.paddingTop = true;
            v.paddingRight = true;
            v.paddingBottom = true;
            v.bkColor = "white-ter";
            v.horzalign=0;//["left","center","right"]
            v.vertalign=0;//["top","middle",bottom"]
        },
        compile: function (compileContext, doc,entity) {
            var cc = compileContext;
            var tc = cc.templateCoder;

            var v = entity.value;
            var cls = [];
            if (v.marginLeft && v.marginTop && v.marginRight && v.marginBottom) cls.push("m-n");
            else {
                if (v.marginLeft) {
                    if (v.marginRight) cls.push("hm-n");
                    else cls.push("lm-n");
                } else {
                    if (v.marginRight) cls.push("rm-n");
                }

                if (v.marginTop) {
                    if (v.marginBottom) cls.push("vm-n");
                    else cls.push("tm-n");
                } else {
                    if (v.marginBottom) cls.push("bm-n");
                }
                
            }
            if (v.paddingLeft && v.paddingTop && v.paddingRight && v.paddingBottom) cls.push("p-n");
            else {
                if (v.paddingLeft) {
                    if (v.paddingRight) cls.push("hp-n");
                    else cls.push("lp-n");
                } else {
                    if (v.paddingRight) cls.push("rp-n");
                }

                if (v.paddingTop) {
                    if (v.paddingBottom) cls.push("vp-n");
                    else cls.push("tp-n");
                } else {
                    if (v.paddingBottom) cls.push("bp-n");
                }
                
            }
            if( v.bkColor )
                cls.push("has-background-" + v.bkColor);

            if( $.toInt(v.horzalign) ===1 ) cls.push("flex-center");
            if( $.toInt(v.horzalign)===2) cls.push("flex-right");
            if( $.toInt(v.vertalign)===1) cls.push("flex-middle");
            if( $.toInt(v.vertalign)===2) cls.push("flex-bottom");

            tc.add("<div class=\"");
            tc.add(cls.join(" "));
            tc.add("\"");
            tc.add(">");
            $.each(entity.children, function (ec) {
                compileContext.compile(ec);
            });
            tc.add("</div>");
        }
    }
})();